package cn.xscrum.vtsp.service;

import cn.xscrum.vtsp.domain.VtspVolunteerManage;

import java.util.List;

/**
 * 志愿者管理Service接口
 *
 * @author liuwl
 * @date 2021-10-01
 */
public interface IVtspVolunteerManageService
{
    /**
     * 查询志愿者管理
     *
     * @param volunteerId 志愿者信息ID
     * @return 志愿者管理信息
     */
    public VtspVolunteerManage selectVtspVolunteerManageById(Long volunteerId);

    /**
     * 查询志愿者证件号码
     *
     * @param cardNo 志愿者证件号码
     * @return 志愿者管理信息
     */
    public VtspVolunteerManage selectVtspVolunteerManageByCardNo(String cardNo);

    /**
     * 查询志愿者管理列表
     *
     * @param vtspVolunteerManage 志愿者信息
     * @return 志愿者信息集合
     */
    public List<VtspVolunteerManage> selectVtspVolunteerManageList(VtspVolunteerManage vtspVolunteerManage);

    /**
     * 新增志愿者管理
     *
     * @param vtspVolunteerManage 志愿者信息
     * @return 结果
     */
    public int insertVtspVolunteerManage(VtspVolunteerManage vtspVolunteerManage);

    /**
     * 修改志愿者管理
     *
     * @param vtspVolunteerManage 志愿者信息
     * @return 结果
     */
    public int updateVtspVolunteerManage(VtspVolunteerManage vtspVolunteerManage);

    /**
     * 批量删除志愿者管理
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteVtspVolunteerManageByIds(String ids);

    /**
     * 删除志愿者管理
     *
     * @param volunteerId 志愿者信息ID
     * @return 结果
     */
    public int deleteVtspVolunteerManageById(Long volunteerId);

    /**
     * 导入志愿者管理文件
     *
     * @param volunteerList 志愿者信息列表
     * @param updateSupport 是否更新支持，如果已存在，则进行更新数据
     * @return 结果
     */
    public String importList(List<VtspVolunteerManage> volunteerList, Boolean updateSupport);

    /**
     * 移入黑名单
     *
     * @param volunteerId 志愿者信息ID
     * @return 结果
     */
    public int moveVtspVolunteerManageById(Long volunteerId);

    /**
     * 查询志愿者服务记录详情列表
     *
     * @param volunteerId 志愿者信息ID
     * @return 志愿者服务记录详情信息
     */
    public List<VtspVolunteerManage> selectServeList(Long volunteerId);

    /**
     * 查询志愿者报名记录详情列表
     *
     * @param volunteerId 志愿者信息ID
     * @return 志愿者报名记录详情信息
     */
    public List<VtspVolunteerManage> selectEnrollList(Long volunteerId);
}
